﻿<?php
/**
\cond
ooooo                        
`888'                        
 888  oo.ooooo.  oooo    ooo 
 888   888' `88b  `88.  .8'  
 888   888   888   `88..8'   
 888   888   888    `888'    
o888o  888bod8P'     .8'     
       888       .o..P'      
      o888o      `Y8P'       
\endcond

\file nout.php
\brief		Librairie Nout permettant une gestion facile des plugins
\author 	Loïc Coenen
\date 		06/09/2011

L'autoloading de Nout fonctionne de la sorte : lorsque que le moteur zend rencontre
une classe inconnue dont le nom est sous la forme <em>A_B_C</em>, il vérifie 
la présence du fichier voulu dans deux dossiers : <code>lib/A/B/C.php</code> et 
<code>lib/A/B/C/C.php</code>.


**/

function __autoloader($name) {
	
	//	Lorsque la classe à charger est sous la forme "item", il doit charger "item/item.php"
	//	Par contre, lorsqu'elle est sous la forme "foo_bar", il doit charger "foo/bar.php". 
	
	$array = explode('_', $name);
	
	//	Obtenir la forme A/B.php
	$url1 = 'lib/' . implode ('/', $array) . '.php';
	
	//	Obtenir la forme A/B/B.php
	$last = array_pop($array);
	$url2 = 'lib/' . implode ('/', $array) . '/' . $last . '/' . $last .  '.php';

	foreach (array($url1, $url2) as $value) {
		if(file_exists($value)){
			require($value);
			break;
		}
	}
	
}

spl_autoload_register('__autoloader');

?>